home *** CD-ROM | disk | FTP | other *** search
Text File | 1987-08-05 | 26.3 KB | 1,080 lines |
- ADJEC red,green,blue,clear;
- ADJEC glass, silver;
-
- NOUN red message(road2); { It's red so there can be others elsewhere }
- red message(WEIGH) = CAPAC;
- red message(LDESC) = ($say "There is a message scratched in the dirt.\n");
- red message(SDESC) = ($say "a message in the dirt");
- red message(ACTION) =
- (IF ($or ($eq ($verb) read) ($eq ($verb) examine)) THEN
- ($say "'in' is a preposition. 'enter' is a verb.\n")
- ($exit 1)
- )
- ;
-
- NOUN keys (town4);
- keys(WEIGH) = 2;
- keys(LDESC) = ($say "There's a set of keys here.\n");
- keys(SDESC) = ($say "a set of keys");
- ADJEC tool;
-
- NOUN tool box (farm5);
- toolbox = tool box;
- toolbox(WEIGH) = CAPAC;
- toolbox(HOLDS) = 50;
- toolbox(OPENS) = TRUE;
- toolbox(LOCKS) = TRUE;
- toolbox(LOCKED) = TRUE;
- toolbox(LIGHT) = TRUE;
- toolbox(LDESC) =
- (IF ($eq ($loc .ME) toolbox) THEN
- ($say
- "You are in a huge wooden structure, towering up at least 80 feet
- above your head, with wooden walls formed of immense 10-foot by 50-foot
- boards. Everything here, even the grains of dust which cover the wooden
- floor, seems immense. "
- )
- (IF ($prop toolbox OPENED) THEN
- ($say
- "Above your head, the top of the structure is open,
- and sunlight streams in.\n"
- )
- ELSE
- ($say
- "The structure is closed at the top, but
- enough light comes in from between the boards to enable you to see.\n"
- )
- )
- ELSE
- ($say "Against\nthe house is a heavy ")
- (IF ($prop toolbox OPENED) THEN
- ($say "toolbox with the lid open.\n")
- ELSEIF ($prop toolbox LOCKED) THEN
- ($say
- "toolbox with a rusty lock, painted with
- an insignia composed of blue and green squares, joined at
- their corners.\n"
- )
- ELSE
- ($say "toolbox, the lid of which is ajar.\n")
- )
- )
- ;
- toolbox(SDESC) =
- (IF ($eq ($loc .ME) toolbox) THEN
- ($return (Sayer "Inside Huge Box" %0))
- ELSE
- ($say "a toolbox")
- )
- ;
- toolbox(ACTION) =
- (IF ($eq ($phase) 7) THEN
- { This is the room action }
- (IF ($or ($eq ($verb) drop)
- ($eq ($verb) throw)
- )
- THEN
- { We don't want to keep track of lots of small things }
- ($say "You just lost ")
- (($sdesc ($dobj)))
- ($say " in a crack between the wooden floorboards!\n")
- ($move ($dobj) .ALL)
- )
- ELSEIF ($eq ($verb) lock) THEN
- (IF ($prop toolbox OPENED) THEN
- ($say "You must close it first.\n")
- ($exit 1)
- ELSEIF ($prop toolbox LOCKED) THEN
- ($say "It's already locked!\n")
- ($exit 1)
- ELSEIF ($eq ($loc keys) .ME) THEN
- ($say "The toolbox seals with a CLICK!\n")
- ($setp toolbox LOCKED TRUE)
- ($exit 1)
- )
- ELSEIF ($eq ($verb) unlock) THEN
- (IF ($not ($prop toolbox LOCKED)) THEN
- ($say "It's already unlocked!\n")
- ($exit 1)
- ELSEIF ($eq ($loc keys) .ME) THEN
- ($say "One of the keys fits! The box is unlocked.\n")
- ($setp toolbox LOCKED FALSE)
- ($exit 1)
- )
- ELSEIF ($eq ($verb) examine) THEN
- (IF ($prop toolbox OPENED) THEN
- ($say "The toolbox is open.\n")
- ELSEIF ($prop toolbox LOCKED) THEN
- ($say "The toolbox is locked.\n")
- ELSE
- ($say "The toolbox is ajar.\n")
- )
- ($exit 1)
- )
- ;
-
- NOUN silver spoon(farm6);
- silver spoon(POINT) = 25;
- silver spoon(WEIGH) = 1;
- silver spoon(LDESC) = ($say "There is a beautiful silver spoon here.\n");
- silver spoon(SDESC) = ($say "a silver spoon");
-
-
- NOUN wetsuit(cel15);
- WORN = MISC1;
- wetsuit(LDESC) = ($say "There is a wetsuit here.\n");
- wetsuit(SDESC) =
- ($say "a wetsuit")
- (IF ($prop wetsuit WORN) THEN
- ($say " (being worn)")
- )
- ;
- wetsuit(WEIGH) = 50;
- wetsuit(ACTION) =
- (IF ($eq ($verb) wear) THEN
- (IF ($ne ($loc wetsuit) .ME) THEN
- ($say "You don't have the wetsuit!\n")
- ($exit 1)
- ELSEIF ($prop wetsuit WORN) THEN
- ($say "You are already wearing it!\n")
- ($exit 1)
- ELSE
- ($setp wetsuit WORN TRUE)
- ($say "OK, you're wearing the wetsuit.\n")
- ($exit 1)
- )
- ELSEIF ($eq ($verb) remove) THEN
- (IF ($prop wetsuit WORN) THEN
- ($setp wetsuit WORN FALSE)
- ($say "OK, you're no longer wearing the wetsuit.\n")
- ($exit 1)
- ELSE
- ($say "You are not wearing the wetsuit!\n")
- ($exit 1)
- )
- ELSEIF ($eq ($verb) drop) THEN
- (IF ($prop wetsuit WORN) THEN
- ($say "You'll have to remove the wetsuit first.\n")
- ($setg Skip TRUE)
- )
- )
- ;
-
- NOUN signpost(Roadx);
- signpost(RDLOC)=10;
- signpost(WEIGH)=CAPAC;
- signpost(LDESC)=($say "There is a signpost by the side of the road.\n");
- signpost(SDESC)=($say "a signpost");
- signpost(ACTION) =
- (IF ($or ($eq ($verb) read) ($eq ($verb) examine)) THEN
- ($say "Pointing east, it says: 'Unuchevala: 10 miles'\n")
- ($exit 1)
- )
- ;
-
- NOUN globe(toolbox);
- globe(WEIGH) = 20;
- globe(LDESC) =
- (IF ($prop globe LIGHT) THEN
- ($say "A globe of stone glows brightly here.\n")
- ELSE
- ($say "There is a strange globe of polished stone here.\n")
- )
- ;
- globe(SDESC) =
- (IF ($prop globe LIGHT) THEN
- ($say "a glowing globe of stone")
- ELSE
- ($say "a stone globe")
- )
- ;
- globe(ACTION) =
- (IF ($eq ($verb) rub) THEN
- (IF ($prop globe LIGHT) THEN
- ($say "The light from the stone globe fades away.\n")
- ($setp globe LIGHT FALSE)
- ELSE
- ($say "The stone globe glows brightly!\n")
- ($setp globe LIGHT TRUE)
- )
- ($setg MyLoc -1)
- ($exit 1)
- ELSEIF ($eq ($verb) examine) THEN
- (IF ($prop globe LIGHT) THEN
- ($say "The globe is glowing.\n")
- ($exit 1)
- )
- )
- ;
-
-
- NOUN crowbar (town3);
- crowbar(WEIGH) = 100;
- crowbar(LDESC) = ($say "There is a long crowbar here.\n");
- crowbar(SDESC) = ($say "a crowbar");
-
- crydie =
- ($say
- "What POWER! The magic crystal releases a flood of energy in
- a split-second! Unfortunately, you were a little close...\n"
- )
- (die)
- ;
- { Dragon Stuff }
- AWAKE=MISC1;
-
- NOUN dragon (cel06);
-
-
- white=clear;
- NOUN green crystal(cel07);
- NOUN red crystal(cel08);
- NOUN blue crystal(cel10);
- NOUN clear crystal(cel09);
-
- diamond = clear crystal;
- sapphire = blue crystal;
- ruby = red crystal;
- emerald = green crystal;
-
- WORKD = MISC1;
-
- green crystal(WEIGH)=15;
- green crystal(POINT)=25;
- green crystal(LDESC) = ($say "There is a beautiful green crystal here!\n");
- green crystal(SDESC) = ($say "a green crystal");
-
- green crystal(ACTION) =
- (IF ($eq ($verb) take) THEN
- (IF ($and ($not ($prop dragon KILLED)) ($eq ($loc .ME) cel07)) THEN
- (IF ($not ($prop dragon AWAKE)) THEN
- ($say "You hear a stirring nearby.\n")
- ($setg Tempr ($plus @Tempr 2))
- ($setp dragon AWAKE TRUE)
- ($setp cel06 SEEN FALSE)
- ELSE
- ($setg Tempr 0)
- )
- )
- ELSEIF ($eq ($verb) drop) THEN
- (IF ($and ($not ($prop dragon KILLED)) ($eq ($loc .ME) cel07)) THEN
- ($setg Tempr ($minus @Tempr 2))
- (IF ($le @Tempr 0) THEN
- ($setp dragon AWAKE FALSE)
- ($say "You hear a deep Y A W N nearby.\n")
- )
- ($setp cel06 SEEN FALSE)
- )
- ELSEIF ($eq ($verb) touch) THEN
- (IF ($eq ($dobj) [red crystal]) THEN
- (IF ($eq ($loc .ME) toolbox) THEN
- ($say "The red and green crystals flare briefly!\n")
- (Grow)
- ($move .ME cel01)
- ($setg MyLoc -1)
- ELSE
- ($say "Nothing happens.\n")
- )
- ($exit 1)
- ELSEIF ($eq ($dobj) [blue crystal]) THEN
- (IF ($gt ($prop [green crystal] WORKD) 2) THEN
- ($say "Nothing happens.\n")
- ELSE
- ($setp [green crystal] WORKD
- ($plus ($prop [green crystal] WORKD) 1)
- )
- ($say "The blue and green crystals flare briefly!\n")
- ($move .ME toolbox)
- (Shrink)
- ($setg MyLoc -1)
- )
- ($exit 1)
- ELSEIF ($eq ($dobj) [clear crystal]) THEN
- ($say "Nothing happens.\n")
- ($exit 1)
- )
- ELSEIF ($eq ($verb) break) THEN
- (IF ($eq ($dobj) [green crystal]) THEN
- (crydie)
- )
- )
- ;
-
- red crystal(WEIGH)=15;
- red crystal(POINT)=25;
- red crystal(LDESC) = ($say "There is a beautiful red crystal here!\n");
- red crystal(SDESC) = ($say "a red crystal");
- red crystal(ACTION) =
- (IF ($eq ($verb) touch) THEN
- (IF ($eq ($dobj) [clear crystal]) THEN
- (IF ($not ($prop [clear crystal] WORKD)) THEN
- ($say "The red and clear crystals flare briefly!\n")
- ($setp [clear crystal] WORKD TRUE)
- ($setp [clear crystal] LIGHT TRUE)
- ($say
- "The clear crystal blazes forth with a magical incandescence brilliant
- enough to penetrate even the deepest darkness!!\n\n"
- )
- ($move .ME cel04)
- ($setg MyLoc -1)
- ($sfus .ME CRout 7)
- ($exit 1)
- ELSE
- ($say "Nothing happens.\n")
- ($exit 1)
- )
- ELSEIF ($eq ($dobj) [green crystal]) THEN
- (IF ($eq ($loc .ME) toolbox) THEN
- ($say "The red and green crystals flare briefly!\n")
- (Grow)
- ($move .ME cel01)
- ($setg MyLoc -1)
- ELSE
- ($say "Nothing happens.\n")
- )
- ($exit 1)
- ELSEIF ($eq ($dobj) [blue crystal]) THEN
- (IF ($or ($eq ($loc .ME) desert) ($eq ($loc .ME) field)) THEN
- ($say "The red and blue crystals flare briefly!\n")
- ($move .ME cel08)
- ($setg MyLoc -1)
- ELSEIF ($not @RBTouch) THEN
- ($say "The red and blue crystals flare briefly!\n")
- ($setg RBTouch TRUE)
- ELSE
- ($say "Nothing happens.\n")
- )
- ($exit 1)
- )
- ELSEIF ($eq ($verb) break) THEN
- (IF ($eq ($dobj) [red crystal]) THEN
- (crydie)
- )
- )
- ;
-
-
- blue crystal(WEIGH)=15;
- blue crystal(POINT)=25;
- blue crystal(LDESC) = ($say "There is a beautiful blue crystal here!\n");
- blue crystal(SDESC) = ($say "a blue crystal");
- blue crystal(ACTION) =
- (IF ($eq ($verb) touch) THEN
- (IF ($eq ($dobj) [red crystal]) THEN
- (IF ($or ($eq ($loc .ME) desert) ($eq ($loc .ME) field)) THEN
- ($say "The red and blue crystals flare briefly!\n")
- ($setg RBTouch TRUE)
- ($move .ME cel08)
- ($setg MyLoc -1)
- ELSEIF ($not @RBTouch) THEN
- ($say "The red and blue crystals flare briefly!\n")
- ($setg RBTouch TRUE)
- ELSE
- ($say "Nothing happens.\n")
- )
- ($exit 1)
- ELSEIF ($eq ($dobj) [green crystal]) THEN
- (IF ($gt ($prop [green crystal] WORKD) 2) THEN
- ($say "Nothing happens.\n")
- ELSE
- ($say "The blue and green crystals flare briefly!\n")
- ($move .ME toolbox)
- (Shrink)
- ($setg MyLoc -1)
- ($setp [green crystal] WORKD
- ($plus ($prop [green crystal] WORKD) 1)
- )
- )
- ($exit 1)
- ELSEIF ($eq ($dobj) [clear crystal]) THEN
- ($say "Nothing happens.\n")
- ($exit 1)
- )
- ELSEIF ($eq ($verb) break) THEN
- (IF ($eq ($dobj) [blue crystal]) THEN
- (crydie)
- )
- )
- ;
-
- CRout =
- ($setp [clear crystal] LIGHT FALSE)
- ($say "The glowing magical crystal seems to have gone dark.\n")
- ;
-
- clear crystal(WEIGH)=15;
- clear crystal(POINT)=25;
- clear crystal(LDESC) =
- ($say "There is a beautiful clear crystal here")
- (IF ($prop [clear crystal] LIGHT) THEN
- ($say " (GLOWING!)")
- )
- ($say "!\n")
- ;
- clear crystal(SDESC) =
- ($say "a clear crystal")
- (IF ($prop [clear crystal] LIGHT) THEN
- ($say " (GLOWING!)")
- )
- ;
- clear crystal(ACTION) =
- (IF ($eq ($verb) touch) THEN
- (IF ($eq ($dobj) [red crystal]) THEN
- (IF ($not ($prop [clear crystal] WORKD)) THEN
- ($say "The red and clear crystals flare briefly!\n")
- ($setp [clear crystal] WORKD TRUE)
- ($setp [clear crystal] LIGHT TRUE)
- ($say
- "The clear crystal blazes forth with a magical incandescence brilliant
- enough to penetrate even the deepest darkness!!\n\n"
- )
- ($move .ME cel04)
- ($setg MyLoc -1)
- ($sfus .ME CRout 7)
- ($exit 1)
- ELSE
- ($say "Nothing happens.\n")
- ($exit 1)
- )
- ELSEIF ($eq ($dobj) [green crystal]) THEN
- ($say "Nothing happens.\n")
- ($exit 1)
- ELSEIF ($eq ($dobj) [blue crystal]) THEN
- ($say "Nothing happens.\n")
- ($exit 1)
- )
- ELSEIF ($eq ($verb) break) THEN
- (IF ($eq ($dobj) [red crystal]) THEN
- (crydie)
- )
- )
- ;
-
-
- NOUN wood(cel20);
- ROUTINE KillDragon;
- DRdem = { Dragon Daemon. Increases temper in .my presence }
- (IF ($or ($prop dragon KILLED) ($not ($prop dragon AWAKE))) THEN
- (IF %1 THEN ($say "\n"))
- ($return 0)
- )
- (IF ($eq ($loc .ME) ($loc dragon)) THEN
- (IF ($eq ($loc [green crystal]) .ME) THEN { even worse! }
- ($setg Tempr ($plus @Tempr 1))
- )
- ($setg Tempr ($plus @Tempr 1))
- (IF ($and ($prop wood FLAME) ($eq ($loc wood) ($loc .ME))) THEN
- (KillDragon)
- ($return 0)
- )
- )
- (IF ($ge @Tempr 7) THEN
- ($say
- "Jeez, I didn't know ice dragons could reach their boiling point!
- In a final flare of rage, he opens his mouth and breathes his frigid
- breath in a blast in your direction. It's a bit much for you."
- )
- (die)
- ELSEIF ($ge @Tempr 6) THEN
- ($say "Gee, he looks like he's really at the edge!")
- ELSEIF ($ge @Tempr 5) THEN
- ($say "This is one upset dragon! Be careful!")
- ELSEIF ($ge @Tempr 3) THEN
- ($say "He's getting angrier...")
- )
- (IF %1 THEN ($say "\n"))
- ;
-
- dragon(WEIGH)=CAPAC;
- dragon(LDESC)=
- (IF ($prop dragon AWAKE) THEN
- ($say
- "There is a fierce ice dragon glaring balefully in your direction. "
- )
- ELSE
- ($say
- "There is a large white dragon sleeping peacefully in the middle
- of the cavern floor. "
- )
- )
- (DRdem 1)
- ;
- dragon(SDESC)=
- (IF ($prop dragon AWAKE) THEN
- ($say "a fierce dragon. ")
- ELSE
- ($say "a somnolent dragon. ")
- )
- (IF ($ne @MyLoc ($loc .ME)) THEN
- (DRdem 0)
- )
- ;
-
- dragon(ACTION) = { Man, the things you can try here... }
- (IF ($prop dragon AWAKE) THEN { This is the harder stuff }
- (IF ($eq ($verb) strike) THEN
- ($say "This just seems to get him angrier!\n")
- ($setg Tempr ($plus @Tempr 1))
- ($exit 1)
- ELSEIF ($eq ($verb) throw) THEN
- (IF ($eq ($iobj) dragon) THEN
- (IF ($gt ($prop ($dobj) WEIGH) 75) THEN
- ($say "This just bruises him! Now he's getting mad!\n")
- ($setg Tempr ($plus @Tempr 1))
- ($exit 1)
- ELSE
- ($say "That object is just too light to hurt him.\n")
- ($exit 1)
- )
- ELSE { Dobj action }
- ($say "This amuses the dragon no end!\n")
- ($exit 1)
- )
- ) { end of Throw case}
- ELSE { he's snoozing}
- (IF ($eq ($verb) wake) THEN
- ($say "You manage to waken him. He's not happy.\n")
- ($setg Tempr 1)
- ($setp dragon AWAKE TRUE)
- (IF ($and ($eq ($loc wood) ($loc .ME)) ($prop wood FLAME)) THEN
- (KillDragon)
- )
- ($exit 1)
- ELSEIF ($eq ($verb) strike) THEN
- ($say "Now you woke him up! He's upset, too!\n")
- ($setg Tempr 2)
- ($setp dragon AWAKE TRUE)
- ($exit 1)
- ELSEIF ($eq ($verb) throw) THEN
- (IF ($eq ($iobj) dragon) THEN
- (IF ($gt ($prop ($dobj) WEIGH) 75) THEN
- ($say
- "It's just heavy enough to waken him. The bruise doesn't help
- his temper any either.\n"
- )
- ($setp dragon AWAKE TRUE)
- ($setg Tempr 3)
- ($exit 1)
- ELSE
- ($say "That object is just too light to wake him.\n")
- ($exit 1)
- )
- ELSE
- ($say "Don't hurt yourself trying!\n")
- ($exit 1)
- )
- ) { end of Throw case}
- )
- ;
-
-
- NOUN money;
- money(WEIGH) = 1;
- money(LDESC) = ($say "There is a stack of money here!\n");
- money(SDESC) = ($say "a stack of money");
- money(POINT) = 25;
- stack = money;
- FOUND = MISC1;
-
-
- NOUN bed (farm7);
- bed(WEIGH) = CAPAC;
- bed(SDESC) = ($say "an old, rickety bed");
-
- bed(ACTION) =
- (IF ($eq ($verb) move) THEN
- (IF ($prop bed OPENED) THEN
- ($say "Stop messing with the bed, it's fragile!\n")
- ($exit 1)
- )
- ($say
- "Moving the bed seems to have loosened one of the wall panels
- on the west wall.\n"
- )
- ($setp bed OPENED TRUE)
- ($exit 1)
- ELSEIF ($and ($eq @Verb look) ($eq @Prep under) ($eq @Iobj bed)) THEN
- (IF ($eq @Prep under) THEN
- (IF ($not ($prop money FOUND)) THEN
- ($say "You find some money under the bed!\n")
- ($move money ($loc .ME))
- ($setp money FOUND TRUE)
- ($exit 1)
- )
- ELSEIF ($prop bed OPENED) THEN
- ($say "The bed has been moved.\n")
- ($exit 1)
- )
- )
- ;
-
- NOUN panel (farm7);
- panel(OPENS) = TRUE;
- panel(WEIGH) = CAPAC;
- panel(ACTION) =
- (IF ($or ($eq ($verb) open)
- ($eq ($verb) pry) )
- THEN
- (IF ($and ($eq ($iobj) crowbar)
- ($eq ($loc crowbar) .ME) )
- THEN
- (IF ($not ($prop bed OPENED)) THEN
- ($say "There aren't any loose enough.\n")
- ($exit 1)
- )
- ($say
- "The loose panel comes away, revealing a secret stairway down, down...\n"
- )
- ($setp panel OPENED TRUE)
- ELSE
- ($say "You can't seem to get the panel open.\n")
- )
- ($exit 1)
- )
- ;
-
-
- NOUN bottle(town6);
- bottle (WEIGH) = 5;
- bottle (LDESC) = ($say "There is a bottle here.\n");
- bottle (SDESC) = ($say "a bottle");
- bottle (TRANS) = TRUE;
- bottle (ACTION) =
- (IF ($eq ($verb) open) THEN
- ($say "Hm, the bottle is somehow sealed shut.\n")
- ($exit 1)
- ELSEIF ($eq ($verb) break) THEN
- ($say "Wow, is that heavy glass! It won't break!\n")
- ($exit 1)
- ELSEIF ($eq ($verb) strike) THEN
- (IF ($eq ($iobj) bottle) THEN
- ($say "Weird thing to do with it.\n")
- ELSE
- ($say "Nice try, but it isn't even scratched.\n")
- )
- ($exit 1)
- )
- ;
-
- NOUN ship(bottle);
- ship (LDESC) = ($say "There is a golden model ship here!\n");
- ship (SDESC) = ($say "a golden model ship");
- ship (WEIGH) = 5;
- ship (POINT) = 50;
- model = ship;
-
- NOUN well(town5);
- well(NOTAKE) = TRUE;
- well (ACTION) =
- (IF ($eq ($iobj) well) THEN
- (IF ($eq ($verb) drop) THEN
- (TWN5y)
- )
- )
- ;
-
- NOUN painting(cel08);
- painting(ACTION) =
- (IF ($eq @Verb take) THEN
- ($say "You can't take the painting.\n")
- ($setg Skip TRUE)
- ELSE
- ($say "Fiddling with the painting is silly.\n")
- ($exit 1)
- )
- ;
-
- NOUN grate(riverx);
- grate(Loc21) = GRATELOC;
- grate(ACTION) =
- (IF ($eq @Verb take) THEN
- ($say "You can't take the grate.\n")
- ($setg Skip TRUE)
- ELSE
- ($say "Fiddling with the grate is useless.\n")
- ($exit 1)
- )
- ;
-
- NOUN insignia;
- insignia(NOTAKE) = TRUE;
- insignia (WEIGH) = CAPAC;
- insignia (ACTION) =
- (IF ($eq ($verb) examine) THEN
- (IF ($eq ($loc .ME) cel01) THEN
- ($say
- "The insignia consists of red and green squares joined at the corners.\n"
- )
- ELSEIF ($eq ($loc .ME) cel04) THEN
- ($say
- "The insignia consists of red and clear squares joined at the corners.\n"
- )
- ELSEIF ($eq ($loc .ME) cel08) THEN
- ($say
- "The insignia consists of red and blue squares joined at the corners.\n"
- )
- ELSEIF ($eq ($loc .ME) farm5) THEN
- ($say
- "The insignia consists of blue and green squares joined at the corners.\n"
- )
- )
- ($exit 1)
- )
- ($say "There's nothing useful to do with the insignia.\n")
- ($exit 1)
- ;
- square=insignia;
-
- NOUN glass box(cel08);
- glass box(HOLDS)=1;
- glass box(TRANS)=TRUE;
- glass box(OPENS)=TRUE;
- glass box(OPENED)=FALSE;
- glass box(SHRNK)=TRUE; { First seen as a tiny box }
- glass box(LDESC) =
- (IF ($eq ($prop .ME SHRNK) ($prop [glass box] SHRNK)) THEN
- ($say "There is a big glass case here.\n")
- ($setp [glass box] WEIGH CAPAC)
- ($setp [glass box] HOLDS 50)
- ELSE
- (IF ($prop .ME SHRNK) THEN
- ($say
- "Before you looms a huge glass wall, inscribed with the words,
- 'program error!'\n"
- )
- ELSE
- ($say "There is a tiny glass box with a snap lid here.\n")
- ($setp [glass box] WEIGH 5)
- ($setp [glass box] HOLDS 1)
- )
- )
- ;
- glass box(SDESC) =
- (IF ($eq ($prop .ME SHRNK) ($prop [glass box] SHRNK)) THEN
- ($say "a glass case")
- ($setp [glass box] WEIGH CAPAC)
- ($setp [glass box] HOLDS 50)
- ELSE
- (IF ($prop .ME SHRNK) THEN
- ($say
- "a huge glass wall, inscribed with the words,
- 'program error'"
- )
- ELSE
- ($say "a tiny glass box")
- ($setp [glass box] WEIGH 5)
- ($setp [glass box] HOLDS 1)
- )
- )
- ;
- glass box(ACTION) =
- (IF ($eq ($verb) examine) THEN
- (IF ($prop [glass box] OPENED) THEN
- ($say "The case is opened.\n")
- ELSE
- ($say "The case is closed (pun not intended).\n")
- )
- ($exit 1)
- )
- ;
- case=glass box;
-
- NOUN statue(glass box);
- sand = statue;
- sand(SHRNK)=TRUE;
- sand(WEIGH)=1;
- sand(LDESC)=
- (IF ($and ($prop sand SHRNK) ($not ($prop .ME SHRNK))) THEN
- ($setp sand POINT 0)
- ($say "There is a grain of sand here.\n")
- ELSE
- ($say "There is a beautiful porcelain statue here!\n")
- ($setp sand POINT 50)
- )
- ;
- sand(SDESC)=
- (IF ($and ($prop sand SHRNK) ($not ($prop .ME SHRNK))) THEN
- ($setp sand POINT 0)
- ($say "a grain of sand")
- ELSE
- ($say "a porcelain statue")
- ($setp sand POINT 50)
- )
- ;
- sand(ACTION)=
- (IF ($eq ($verb) take) THEN
- (IF ($and ($prop sand SHRNK) ($not ($prop .ME SHRNK))) THEN
- ($say "You fumble the grain of sand and lose it on the ground.\n")
- ($move sand .ALL)
- ($setg Skip TRUE)
- )
- )
- ;
-
- NOUN hole;
- hole(NOTAKE) = TRUE;
- hole(ACTION) =
- ($say "You can't do anything useful with the hole.\n")
- ($exit 1)
- ;
-
- NOUN rock(road5);
- rock(LDESC)=($say "There is a plain-looking rock here.\n");
- rock(SDESC)=($say "an ordinary rock");
- rock(ACTION)=
- (IF ($and ($eq ($verb) take) ($eq ($dobj) rock)) THEN
- ($say "Mmph! Heavy!\n")
- )
- ;
- rock(WEIGH)=100;
-
- IFOUND = MISC1;
- NOUN ivory(riverx);
- ivory(WEIGH) = 5;
- ivory(POINT) = 25;
- ivory(Loc21) = GRATELOC;
- ivory(LDESC) =
- ($say "There is a beautiful piece of ivory ")
- (IF ($not ($prop ivory IFOUND)) THEN
- ($say "wedged in the grate.\n")
- ($setp ivory IFOUND TRUE)
- ELSE
- ($say "here.\n")
- )
- ;
- ivory(SDESC) =
- ($say "a piece of ivory")
- (IF ($not ($prop ivory IFOUND)) THEN
- ($say " (wedged in the grate)")
- ($setp ivory IFOUND TRUE)
- )
- ;
-
-
- NOUN matches(cel12);
- matches(LDESC) = ($say "There is a book of waterproof matches here.\n");
- matches(SDESC) = ($say "a book of matches");
- matches(ACTION) =
- (IF ($and ($or ($eq @Verb light) ($eq @Verb burn)) ($eq @Dobj matches)) THEN
- ($say "OK, you light a match, which quickly burns out.\n")
- ($exit 1)
- )
- ;
- matches(WEIGH) = 1;
- book = matches;
-
- WoodBurn =
- (IF ($eq ($loc wood) ($loc .ME)) THEN
- ($say "The wood burns down to a pile of ashes, which blows away.\n")
- )
- ($move wood .ALL)
- ($setp wood FLAME FALSE)
- ;
-
-
- { NOUN wood(cel20); }
- wood(LDESC) =
- ($say "There is a pile of ")
- (IF ($prop wood FLAME) THEN
- ($say "burning ")
- )
- ($say "wood here.\n")
- ;
- wood(SDESC) =
- ($say "a pile of ")
- (IF ($prop wood FLAME) THEN
- ($say "burning ")
- )
- ($say "wood")
- ;
- wood(WEIGH) = 100;
- wood(ACTION) =
- (IF ($prop wood FLAME) THEN
- ($say "The wood is too hot to touch.\n")
- (IF ($or ($eq @Verb take) ($eq @Verb drop)) THEN
- ($setg Skip TRUE)
- ($return 0)
- ELSE
- ($exit 1)
- )
- ELSEIF ($or ($eq @Verb burn) ($eq @Verb light)) THEN
- (IF ($not @Iobj) THEN
- ($say "You must tell me how to do that!\n")
- ($exit 1)
- ELSEIF ($ne @Iobj matches) THEN
- ($say "That doesn't seem to work.\n")
- ($exit 1)
- ELSEIF ($eq ($loc wood) .ME) THEN
- ($say "You can't manage that while you are holding the wood.\n")
- ($exit 1)
- )
- ($say
- "You strike a match and apply it to the wood, which bursts into flames.\n"
- )
- (IF ($and ($prop dragon AWAKE) ($eq ($loc .ME) ($loc dragon))) THEN
- (KillDragon)
- ELSE
- ($setp wood FLAME TRUE)
- ($sfus .ME WoodBurn 3)
- )
- ($exit 1)
- )
- ;
-
-
- KillDragon =
- ($say
- "The dragon, attracted by the bright flame of the burning wood, snaps it up in
- its jaws. Suddenly, the dragon realizes what it has done! It tries to spit
- out the wood, but it is too late! The dragon evaporates with a deafening
- whistle and a burst of steam! "
- )
- (IF ($or ($eq ($loc bottle) ($loc .ME))
- ($eq ($loc bottle) .ME)
- )
- THEN
- ($say
- "The sound of the whistle shatters the bottle,
- releasing the golden ship model! "
- )
- ($move ship ($loc .ME))
- ($move bottle .ALL)
- )
- ($say
- "Upon the death of the dragon, the ice melts with astonishing speed.\n"
- )
- ($dfus .ME WoodBurn)
- ($move wood .ALL)
- ($setp dragon KILLED TRUE)
- ($move dragon .ALL)
- ($setg SCORE ($plus @SCORE 100))
- ($setp cel06 SEEN FALSE)
- ($setp cel05 SEEN FALSE)
- ($setp cel03 SEEN FALSE)
- ($setp cel10 SEEN FALSE)
- ($setp cel08 SEEN FALSE)
- ;
-
- NOUN goblet(cel19);
- FREED = MISC1;
- goblet(WEIGH) = 5;
- goblet(POINT) = 25;
- goblet(LDESC) =
- (IF ($not ($prop goblet FREED)) THEN
- ($say "There is a beautiful golden goblet frozen in the ice!\n")
- ELSE
- ($say "There is a beautiful golden goblet here!\n")
- )
- ;
- goblet(SDESC) =
- ($say "a golden goblet")
- (IF ($not ($prop goblet FREED)) THEN
- ($say " (frozen in the ice)")
- )
- ;
- goblet(ACTION) =
- (IF ($not ($prop goblet FREED)) THEN
- ($say
- "There's not much you can do with the goblet while it's frozen
- in the ice.\n"
- )
- ($exit 1)
- )
- ;
-
- NOUN newspaper(town2);
- paper = newspaper;
- newspaper(LDESC) =
- ($say "There is a newspaper fluttering in the breeze here.\n")
- ;
- newspaper(SDESC) = ($say "a newspaper");
- newspaper(ACTION) =
- (IF ($or ($eq ($verb) read) ($eq ($verb) examine)) THEN
- ($say " UNUCHEVALA NEWS -- VOLUME II NUMBER 1\n\n")
- ($say
- "VANDALS THREATEN COWLEY
-
- Last night, unknown vandals attacked the farm of Mr. Cowley, north of
- town. They sprayed \"DIE, HEATHENS\" on his front door (in reference to his
- admittedly strange beliefs). Cowley says that this is not the first such
- threat he has received. However, he says that he will deal with the vandals
- in his own way. Unfortunately, we have been unable to contact Mr. Cowley
- personally, since he has not been seen hereabouts since last night.\n\n"
- )
- ($say
- "DROUGHT IMMINENT, SAY LOCAL FARMERS
-
- The Unuchevala River has recently been falling, and little relief
- is in sight for our local farmers. \"I'm agonna leave here, purty soon,\"
- said one farmer (who chose to remain anonymous). \"It's all that danged
- Cowley's fault, messin' about with things that ain't natrawl-like. I
- caint even raise 'nuff to feed myself, not mentionin' the resta the town.\"\n\n"
- )
- ($say "WEATHER -- Continued dry, with no rain in sight.\n\n")
- ($exit 1)
- ELSEIF ($or ($eq @Verb burn) ($eq @Verb light)) THEN
- (IF ($not @Iobj) THEN
- ($say "You must tell me how to do that!\n")
- ($exit 1)
- ELSEIF ($ne @Iobj matches) THEN
- ($say "That doesn't seem to work.\n")
- ($exit 1)
- ELSEIF ($eq ($loc newspaper) .ME) THEN
- ($say "You can't manage to do that while holding the newspaper.\n")
- ($exit 1)
- )
- ($say
- "The newspaper lights easily, burning down to ashes which blow away.\n"
- )
- (IF ($and ($eq ($loc .ME) ($loc dragon)) ($prop dragon AWAKE)) THEN
- { give the player a hint }
- ($say
- "The dragon notices the flash and approaches the newspaper,
- but the fire dies down before the dragon can reach it.\n"
- )
- )
- ($move newspaper .ALL)
- ($exit 1)
- )
- ;
-
- NOUN ice;
- ice(NOTAKE) = TRUE;
- ice(ACTION) =
- (IF ($or ($eq @Verb break) ($eq @Verb hit)) THEN
- (IF ($eq @Dobj ice) THEN
- (IF ($not @Iobj) THEN
- ($say "You must tell me how to do that.\n")
- ($exit 1)
- )
- (IF ($eq ($loc .ME) cel19) THEN
- (IF ($gt ($prop @Iobj WEIGH) 20) THEN
- (IF ($not ($prop goblet FREED)) THEN
- ($say "You manage to free the goblet.\n")
- ($setp goblet FREED TRUE)
- ($move goblet cel19)
- ($exit 1)
- )
- )
- ELSEIF ($eq ($loc .ME) cel13) THEN
- (IF ($not ($prop cel13 HOLED)) THEN
- (IF ($gt ($prop @Iobj WEIGH) 75) THEN
- ($say
- "You swing at the ice with the " ($name @Iobj)
- ", which breaks through and sinks into
- the icy waters below!\n"
- )
- ($move @Iobj .ALL)
- ($setp cel13 HOLED TRUE)
- ($exit 1)
- )
- )
- )
- ($say "The ice chips a bit, but does not break.\n")
- ($exit 1)
- )
- )
- ($say "You can't do that!\n")
- ($exit 1)
- ;
-